package me.sdevil507.systemAssist.systemMessage.po;

import lombok.*;
import me.sdevil507.supports.jpa.BaseJpaSnowflakeIdEntity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;

/**
 * 通知关系表
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "system_message_rel")
public class SystemMessageRelPo extends BaseJpaSnowflakeIdEntity {

    /**
     * 通知内容外键
     */
    @Column
    private Long messageTextId;

    /**
     * 通知范围 分为局部和全部，0是局部、1是全部
     */
    @Column
    private Integer messageScope;

    /**
     * 分类 0是通知、1是消息
     */
    @Column
    private Integer messageClassify;

    /**
     * 类型 1 系统消息、2 通知公告、3 成果、4 课题、5 批示、6 采纳
     */
    @Column
    private Integer messageType;

    /**
     * 信息体状态 0待发送（草稿） 1已发送 2删除
     */
    @Column
    private Integer messageTextState;

    /**
     * 发送通知模块
     */
    @Column
    private String sendMessageModule;

    /**
     * 发送通知终端（平台、服务端、机构端、专家端）
     */
    @Column
    private String sendMessageTerminal;

    /**
     * 信息发送状态 0：失败 1：成功
     */
    @Column
    private Integer sendMessageState;

    /**
     * 发送人id
     */
    @Column
    private Long sendUserId;

    /**
     * 发送人部门(包含智库id  智库办部门id)
     */
    @Column
    private Long sendDeptId;

    /**
     * 接收人id
     */
    @Column
    private Long receiveUserId;

    /**
     * 接收人部门(包含智库id  智库办部门id, 0代表当前用户权限下所有智库)
     */
    @Column
    private Long receiveDeptId;

    /**
     * 接收通知终端（平台、服务端、机构端、专家端）
     */
    @Column
    private String receiveMessageTerminal;

    /**
     * 是否删除
     */
    @Column(nullable = false)
    @Builder.Default
    private Boolean  isDel= false;

    /**
     * 发送时间
     */
    @Column
    @Builder.Default
    private Date createTime = new Date();

}
